package com.ougy.reshop.dao;

import java.io.Serializable;
import java.util.List;
import java.util.Map;

import org.hibernate.criterion.DetachedCriteria;

import com.ougy.reshop.util.PaginationSupport;

public interface IBaseDao<T> {
	T load(Serializable paramSerializable);

	T merge(T paramT);

	void save(T paramT);

	void remove(T paramT);

	void update(T paramT);

	List<T> findAllByCriteria(DetachedCriteria paramDetachedCriteria);

	int getCountByCriteria(DetachedCriteria paramDetachedCriteria);

	PaginationSupport findPageByCriteria(
			DetachedCriteria paramDetachedCriteria);

	PaginationSupport findPageByCriteria(
			DetachedCriteria paramDetachedCriteria, int paramInt);

	PaginationSupport findPageByCriteria(
			DetachedCriteria paramDetachedCriteria, int paramInt1, int paramInt2);

	PaginationSupport findPageByIndex(
			DetachedCriteria paramDetachedCriteria, int paramInt1, int paramInt2);

	int batchUpdate(String paramString, Object[] paramArrayOfObject);

	int executeNativeSQL(String paramString);

	void flush();
}
